package com.zhidisoft.system.service;

import com.zhidisoft.common.Page;
import com.zhidisoft.system.entity.User;
import com.zhidisoft.system.vo.UserVO;

public interface IUserService {

	/**
	 * 添加用户
	 * @param user
	 * @return
	 */
	String add(User user);
	
	/**
	 * 添加为分配新的角色，保持用户原有角色
	 * @param userId
	 * @param roleId
	 * @return
	 */
	boolean addRoles(String userId,String...roleId);
	
	/**
	 * 更新用户所拥有的角色，将原来的用户原来的角色移除
	 * @param userId
	 * @param roleId
	 * @return
	 */
	boolean updateRoles(String userId,String... roleId);
	
	/**
	 * 通过用户名获取用户信息
	 * @param username -用户名
	 * @return -如果用户名存在，返回该用户对象，否则返回null
	 */
	User findByUsername(String username);

	/**
	 * 分页获取用户数据
	 * @param pageNumber -当前页码
	 * @param pageSize -获取的记录数
	 * @return 
	 */
	Page<UserVO> findByPage(Long pageNumber, Long pageSize);

	/**
	 * 添加获取修改用户的方法
	 * @param user
	 * @return
	 */
	boolean saveOrUpdate(User user);

	/**
	 * 根据用户的id删除用户信息
	 * @param ids
	 * @return
	 */
	boolean removeByIds(String ids);

	/**
	 * 根据用户id获取用户信息
	 * @param id
	 * @return
	 */
	UserVO findById(String id);
}
